package com.zhiteng.service;

import java.util.List;

public interface RedisService {
	
	//	执行set命令，添加字符串格式数据
	//		注意返回值：
	//			在 Redis 2.6.12 以前版本， SET命令总是返回 OK 。
	//  		从 Redis 2.6.12 版本开始， SET在设置操作成功完成时，才返回 OK 。
	String set(String key, String value);
	
	//	执行set命令，添加字符串格式数据，并设置存活时间 	单位s
	String set(String key, String value,int seconds);
	
	//	执行get命令，查询字符串格式数据
	String get(String key);
	
	//	查询key是否存在
	Boolean exists(String key);
	
	//	执行expire命令，设置存活时间 	单位s
	Long expire(String key, int seconds);
	
	//	 以秒为单位，返回给定 key 的剩余生存时间(TTL, time to live)
	Long ttl(String key);
	
	//	将 key中储存的数字值增一
	//		如果 key 不存在，那么 key 的值会先被初始化为 0 ，然后再执行 INCR 操作
	//		如果值包含错误的类型，或字符串类型的值不能表示为数字，那么返回一个错误
	Long incr(String key);
	
	//	为哈希表中的字段赋值
	//	如果字段是哈希表中的一个新建字段，并且值设置成功，返回 1 。 如果哈希表中域字段已经存在且旧值已被新值覆盖，返回 0 。
	Long hset(String key, String field, String value);
	
	//	为哈希表中的字段赋值，并设置过期时间
	//	如果字段是哈希表中的一个新建字段，并且值设置成功，返回 1 。 如果哈希表中域字段已经存在且旧值已被新值覆盖，返回 0 。
	Long hset(String key, String field, String value,int seconds);
	
	//	返回哈希表中指定字段的值
	String hget(String key, String field);
	
	//	删除哈希表中指定字段
	//		返回值：从散列中删除的字段的数量
	Long hdel(String key, String... field);
	
	//	判断哈希表中指定字段是否存在
	Boolean hexists(String key, String field);
	
	//	返回哈希表所有域(field)的值
	List<String> hvals(String key);
	
	//	删除已存在的键。不存在的 key 会被忽略
	Long del(String key);
}

